﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NativeDataOperation.Interfaces;

namespace DDHDeepTunnel.EquipmentManagement.Interfaces
{
    public interface IBatch
    {
        string InsertBatch<T>(List<T> entityList) where T : class;

        string InsertBatchDataTable(DataTable dataTable, List<SqlPropertyMap> properties, string tableName);

        string InsertBatchSqlDataTable(DataTable dataTable, List<SqlPropertyMap> properties, string tableName,
            int batchSize = 10000);

        string InsertBatchGISSqlDataTable(DataTable dataTable, List<SqlPropertyMap> properties, string tableName,
            int batchSize = 10000);

        bool InsertBatchDictionary(string sqlString, string destinationTableName,
            Dictionary<string, string> hashArrayParam,
            Dictionary<string, object> hashParamValue, int arrayBindCount);

        string UpdateBatch<T>(IEnumerable<T> entityList) where T : class;
    }
}